var uid = 0
function Dep() {
  // 持有watcher的订阅者
  this.subs = []
  this.id = uid++
}
Dep.prototype = {
  // 收集依赖，使dep与watch互相持有
  depend() {
    // Dep.target为watcher实例
    if(Dep.target) {
      Dep.target.addDep(this)
    }
  },
  // 添加watcher
  addSub(sub) {
    this.subs.push(sub)
  },
  // 通过所有watcher进行更新
  notify() {
    this.subs && this.subs.forEach(item => {
      item.update()
    })
  }
}